10442. Дрон

 

Дрон находится на координатной плоскости XY и начинает свое движение из точки (0, 0), каждую секунду передвигаясь на одну единицу вдоль оси X или Y. Вдоль координатных осей можно передвигаться в обоих направлениях. После исполнения команд передвижения, в конце пути дрон взрывается. Определите координаты взрыва дрона.

Вдоль оси X движение вперед обозначается знаком >, а движение назад знаком “<”.

Вдоль оси Y движение вперед обозначается знаком “^”, а движение назад знаком “v”.

 

Вход. В первой строке дается одно целое число t (1 t 100) – количество тестов.

В каждой из последующих t строк задается последовательность s (1 ≤ |s| ≤ 1000) символов, обозначающих передвижение дрона. Через |s| здесь обозначена длина строки s.

 

Выход. Для каждого теста выведите в отдельной строке два целых числа – координаты X и Y взрыва дрона.

 

Пример входа

Пример выхода

2

>>^

>>^^v<

2 1

1 1

 

 

РЕШЕНИЕ

моделирование

 

Анализ алгоритма

Инициализируем начальное положение дрона (x, y) = (0, 0). Читаем входную последовательность s, описывающую передвижение дрона. Моделируем движение дрона и выводим координаты конца пути – координаты взрыва дрона.

 

Реализация алгоритма

Читаем количество тестов tests.

 

cin >> tests;

while (tests--)

{

 

Читаем последовательность s передвижения дрона.

 

  cin >> s;

 

Пусть изначально дрон находится в точке с координатами (0, 0).

 

  x = y = 0;

 

Моделируем движение дрона. Для каждого символа s[i] изменяем координаты дрона.

 

  for (i = 0; i < s.size(); i++)

  {

    if (s[i] == '>') x++;

    if (s[i] == '<') x--;

    if (s[i] == '^') y++;

    if (s[i] == 'v') y--;

  }

 

Выводим координаты  взрыва дрона.

 

  cout << x << " " << y << endl;

}